﻿
如果⽤⼆维数组来模拟，需要开10^5*10^5 ⼤⼩的数组，空间会超。但是格⼦的总数量是10^7 ，⽤数
组模拟是完全够⽤的。因此可以⽤动态扩容的数组，创建 个 来模拟。

#include<iostream>

#include<vector>

//const int N=1e5+10; 
//using namespace std;
//
//
//	vector<int>arr[N]; 
//int main()
//{
////	vector<int>arr(N);
////	vector<int>arr[N]; 
//	int m,n;
//	cin>>m>>n;
//	
//	while(n--)
//	{
//		int op;
//		cin>>op;
//	  if(op==1)
//        {
//		  int i,j,k;
//		  cin>>i>>j>>k;
//		  if(arr[i].size()<=j)
//		  {
////		  	arr[i].size()*=2
//
//            arr[i].resize(j+1);
//
//		  }
//		  arr[i][j]=k;
//		  
//	    }
//	   if(op==2)
//	  {
//		int i,j;
//		cin>>i>>j;
//		cout<<arr[i][j]<<endl;
//	  }
//	}
//	return 0 ;
// } 


注意，上面把 vector<int>arr[N]; 放在main函数里面，栈溢出了，必须放外面静态区 


using namespace std;

const int N=1e5+10; 
	vector<int>arr[N]; 
	
int main()
{
//	vector<int>arr(N);
//	vector<int>arr[N]; 
	int m,n;
	cin>>m>>n;
	
	while(n--)
	{
		int op;
		cin>>op;
	  if(op==1)
        {
		  int i,j,k;
		  cin>>i>>j>>k;
		  if(arr[i].size()<=j)
		  {
//		  	arr[i].size()*=2

            arr[i].resize(j+1);

		  }
		  arr[i][j]=k;
		  
	    }
	   if(op==2)
	  {
		int i,j;
		cin>>i>>j;
		cout<<arr[i][j]<<endl;
	  }
	}
	return 0 ;
 } 
